package com.hua.util;

import android.content.Context;
import android.os.Looper;
import android.widget.Toast;

import java.util.logging.Handler;

/**
 * 类名：CommToastUtil
 * 创建人：蒋剑华
 * 创建时间：2025/11/7 13:43
 * 类描述：全局吐司
 */
public class CommToastUtil {

    //单例实例（双重检查锁）
    private static volatile CommToastUtil commToastUtil = null;

    //全局Application（避免内存泄露）
    private Context context;

    // 当前显示的Toast实例（用于取消上一个，避免叠加）
    private Toast currentToast;

    // 私有构造方法（禁止外部实例化）
    private CommToastUtil() {}

    /**
     * 方法名：getInstance
     * 作者：蒋剑华
     * 创建时间：2025/11/7 13:54
     * 参数描述：
     * 方法描述：获取单例实例
     * 返回类型：返回当前对象，this
     */
    public static CommToastUtil getInstance() {
        if (commToastUtil == null) {
            synchronized (CommToastUtil.class) {
                if (commToastUtil == null) {
                    commToastUtil = new CommToastUtil();
                }
            }
        }
        return commToastUtil;
    }

    /**
     * 方法名：initToast
     * 作者：蒋剑华
     * 创建时间：2025/11/7 13:55
     * 参数描述：
     * @param context 从application中传进来的applicationContext
     * 方法描述：注册全局吐司初始化方法
     * 返回类型：void 无返回
     */
    public void initToast(Context context) {
        this.context = context;
    }


    /**
     * 方法名：showShortToast
     * 作者：蒋剑华
     * 创建时间：2025/11/7 13:57
     * 参数描述：
     * @param toastContent 吐司显示的内容
     * 方法描述：弹出短暂的吐司 如果前面还有吐司显示会取消掉，显示当前吐司
     * 返回类型：void 无返回类型
     */
    public void showShortToast(String toastContent) {
        if (currentToast != null) {
            currentToast.cancel();
        }
        currentToast = new Toast(context);
        currentToast.setDuration(Toast.LENGTH_SHORT); // 设置显示时长
        currentToast.show();
    }

    /**
     * 方法名：showLongToast
     * 作者：蒋剑华
     * 创建时间：2025/11/7 13:58
     * 参数描述：
     * @param toastContent 吐司显示的内容
     * 方法描述：弹出长一点时间的吐司，如果前面有吐司会显示取消的，显示当前土司
     * 返回类型：void 无返回类型
     */
    public void showLongToast(String toastContent) {
        if (currentToast != null) {
            currentToast.cancel();
        }
        currentToast = new Toast(context);
        currentToast.setDuration(Toast.LENGTH_LONG); // 设置显示时长
        currentToast.show();
    }
}
